I. Wzorce kreacyjne 1. Singleton 2. Budowniczy 3. Prototyp 4. Fabryka 5. Fabryka abstrakcyjna II. Wzorce strukturalne 1. Adapter 2. Most 3. Kompozyt 4. Dekorator 5. Fasada 6. Pyłek 7. Pełnomocnik III. Wzorce czynnościowe 1. Łańcuch zobowiązań 2. Polecenie 3. Interpreter 4. Iterator 5. Mediator 6. Pamiątka 7. Obserwator 8. Stan 9. Strategia 10. Metoda szablonowa 11. Odwiedzający |
Metoda Szablonowa (Template Method) - wzorzec projektowy (design pattern) - java1. Cel:Wzorzec Metoda Szablonowa (Template Method) służy do definiowania algorytmu, który umożliwia podklasom przedefiniowanie części algorytmu bez zmiany jego struktury. Używamy go do ponownego użycia kodu. Algorytm jest użyty podczas czasu kompiliacji. Użyty może być ten sam algorytm wiele razy. Gwarantuje użycie algorytmu. 2. Problem: Chcemy nadpisać metodę którą ponownie użyjemy. Chcemy użyć algorytmu w naszej operacji. Chcemy zdefiniować kroki w podklasie, chcemy pozwolić podklasie na pewne kroki algorytmu bez zmiany algorytmu i sekwencji wykonania. Pewne kroki chcemy nadpisać i użyć w nich naszego algorytmu. 3. Rozwiązanie: Wzorzec jest zbudowany na podstawie klasy abstrakcyjnej. Klasa bazowa uruchamia klasę dziacko. Używamy medoty szablonowej, która jest uruchamiana wraz z abstrakcyjnymi metodami które są nadpisywane. I te metody nadpisywane to jest nasz algorytm który używamy. Przykładem wzorca jest metoda compareTo i interface Comparable. Powszechnie używany w Inversion of Control (IoC). 4. Diagram klas wzorca Metoda Szablonowa (Template Method): 5. Implementacja: Klasa testująca: Implementacja abstrakcyjnej klasy metody szablonowej: Konkretna implementacja wzorca: Wynik programu jest następujący: Fundamenty zostały zbudowane. Drewniane ściany zostały zbudowane. Dach został zbudowany. Okna zostały zainstalowane Drzwi zostały zainstalowane Dom został pomalowany. 6. Zastosowanie w kodzie java: - wszystkie nieabstrakcyjne metody w: java.io.InputStream, java.io.OutputStream, java.io.Reader i java.io.Writer. Takie jak java.io.InputStream#skip(), java.io.InputStream#read() - wszystkie nieabstrakcyjne metody w: java.util.AbstractList, java.util.AbstractSet i java.util.AbstractMap takie jak: java.util.AbstractList#indexOf (), java.util.Collections#sort() - javax.servlet.http.HttpServlet, wszystkie: doXXX() metody domyślnie używają HTTP 405 “Method Not Allowed” błędu odpowiedzi. Możesz nadpisać każdą z nich. |
---|